//345. 反转字符串中的元音字母
//思路：1.我们先将大小写的元音字母存放在一个数组里面
//2.封装一个判断元音字母的函数，用作判断 
//3.正常的写一个交换的功能，但是在这之前我们需要考虑 4 种情况
//      1> 前不为元音字母时，让 begin++;
//      2> 后不为元音字母时，让 end--;
//      3> 前、后都不为元音字母的时候，让 begin++, end--;
//      4> 剩下的情况就是前、后位置都是原因字母，那我们就让这两个位置的字母交换
//          交换完，begin++, end--;

#include <string.h>
char vowels[] = { 'a','e','i','o','u','A','E','I','O','U' };
int isVowels(char ch)
{
    for (int i = 0; i < 10; i++)
    {
        if (vowels[i] == ch)
            return 1;
    }
    return 0;
}
char* reverseVowels(char* s) {
    int len = strlen(s);
    char* begin = s, * end = s + len - 1;
    while (begin < end)
    {
        if (!isVowels(*begin))//前不为元音字母
            begin++;
        else if (!isVowels(*end))//后不为元音字母
            end--;
        else if (!isVowels(*begin) && !isVowels(*end))//前、后都不为原因字母
            begin++, end--;
        else
        {
            char tmp = *begin;
            *begin = *end;
            *end = tmp;

            begin++;
            end--;
        }
    }
    return s;
}